// BailHook：熔断钩子，某个监听返回非 undefined 时后续不执行
const { SyncBailHook } = require('tapable')

// 创建实例对象
let hook =  new SyncBailHook(['name', 'age'])

// 添加事件监听
hook.tap('fn1', function (name, age) {
    console.log('fn1--->', name, age)
})

hook.tap('fn2', function (name, age) {
    console.log('fn2--->', name, age)
    // return 'fn2 return'
    return undefined
})

hook.tap('fn3', function (name, age) {
    console.log('fn3--->', name, age)
})

// 触发事件监听
hook.call('SyncBailHook', 12)
